Crate const_oid[][src]

Expand description

Const-friendly X.660 Object Identifier (OID) library with support for heapless no_std (i.e. embedded) environments.

About OIDs

Object Identifiers (a.k.a. OIDs, represented by this library as the ObjectIdentifier struct) are an International Telecommunications Union (ITU) and ISO/IEC standard for naming any object, concept, or “thing” with a globally unambiguous persistent name.

OIDS are defined in the ITU’s X.660 standard.

The following is an example of an OID, in this case identifying the rsaEncryption algorithm:

1.2.840.113549.1.1.1

For more information, see: https://en.wikipedia.org/wiki/Object_identifier

Implementation

This library supports parsing OIDs in const contexts, e.g.:

use const_oid::ObjectIdentifier;

pub const MY_OID: ObjectIdentifier = ObjectIdentifier::new("1.2.840.113549.1.1.1");

The OID parser is implemented entirely in terms of const fn and without the use of proc macros.

Additionally, it also includes a const fn OID serializer, and stores the OIDs parsed from const contexts encoded using the BER/DER serialization (sans header).

This allows ObjectIdentifier to impl AsRef<[u8]> which can be used to obtain the BER/DER serialization of an OID, even one declared const.

Additionally, it impls FromStr and TryFrom<&[u8]> and functions just as well as a runtime OID library.

Minimum Supported Rust Version

This crate requires Rust 1.55 at a minimum.

Minimum supported Rust version may be changed in the future, but it will be accompanied with a minor version bump.

Structs

Iterator over arcs (a.k.a. nodes) in an ObjectIdentifier.

Error type

Object identifier (OID).

Type Definitions

Type used to represent an “arc” (i.e. integer identifier value).

Result type